package com.atguigu.bigdata.scala.chapter10

object Scala06_Transform extends XXX with YYY {

    def main(args: Array[String]): Unit = {

        // TODO - 隐式转换 - 作用域
        // 隐式类只能嵌套使用
        // 1. 在当前类代码的作用域中
        // 2. 在上一级的作用域中(父类，父类的伴生对象)
        // 3. 在特质的作用域中(特质，特质的伴生对象)
        // 4. 包对象

        // 如果需要使用隐式转换，只需要导入即可
        import com.atguigu.bigdata.scala.bean.Transform._
        val user = new User()
        user.insertUser()
        user.updateUser()
    }
//    implicit class UserExt(user:User) {
//        def updateUser(): Unit = {
//            println("update user...1")
//        }
//    }
    class User {
        def insertUser(): Unit = {
            println("insert user...")
        }
    }
}
trait YYY {
//    implicit class UserExt(user:User) {
//        def updateUser(): Unit = {
//            println("update user...4")
//        }
//    }
}
object YYY {
//    implicit class UserExt(user:User) {
//        def updateUser(): Unit = {
//            println("update user...5")
//        }
//    }
}
class XXX {
//    implicit class UserExt(user:User) {
//        def updateUser(): Unit = {
//            println("update user...2")
//        }
//    }
}
object XXX {
//    implicit class UserExt(user:User) {
//        def updateUser(): Unit = {
//            println("update user...3")
//        }
//    }
}